.. :validated: 2.4.0

Инструкция по настройке двусторонних доверительных отношений между MS AD и ALD Pro
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Благодаря внедрению ряда решений, включая глобальный каталог ALD Pro, есть возможность настраивать двусторонние доверительные отношения. В отличие от MS AD, в ALD Pro направления доверия MS AD → ALD Pro и ALD Pro → MS AD реализованы разными механизмами.

Двусторонние доверительные отношения, предоставляют возможность общаться доменам ALD Pro и MS AD, решая ряд важных задач:

-  Авторизация пользователей доверенных доменах на рабочих станциях;
-  Доступ к сетевым ресурсам пользователей доверенного домена (веб сервер, файловый сервер, базы данных и т.д.);
-  Разграничение доступа к ресурсам доверенных доменов.

Как работают доверительные отношения MS AD и ALD Pro
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Технические требования
++++++++++++++++++++++++++

Версии Windows Server работающие с глобальным каталогом ALD Pro

   -  Windows Server 2008 R2
   -  Windows Server 2012
   -  Windows Server 2012 R2
   -  Windows Server 2016
   -  Windows Server 2019

Глобальный каталог
++++++++++++++++++++++++

Для работы с глобальным каталогом, его необходимо установить согласно Руководству администратора Часть 1 - Обновление подсистем - 3.1.3. Обновление с установкой Глобального Каталога.

.. необходимо подредактировать перед выпуском релиза!!!!

**Механизм работы глобального каталога**

В лесу Active Directory может быть много поддоменов, и, чтобы ускорить поиск нужной информации, разработчики Microsoft придумали такую роль, как **глобальный каталог** (англ. Global Catalog, GC).

Контроллер домена MS AD, которому назначена роль глобального каталога, с помощью штатной процедуры репликации извлекает из всех поддоменов краткую информацию об объектах (англ. Partial Attribute Set, PAT) и предоставляет ее приложениям по запросу.

В FreeIPA нет глобального каталога, что становится проблемой при работе в доверительных отношениях с доменом MS AD, т.к. из-за этого Windows-администраторы не могу назначить права доступа пользователям доверенного домена FreeIPA с помощью стандартных оснасток (просто не работает поиск объектов из доверенного домена). Для решения этой проблемы в ALD Pro была реализована функция глобального каталога в виде дополнительного модуля.

На данный момент объекты из суб-доменов не синхронизируются в Global Catalog главного домена, как это сделано в Windows.

**Глобальный каталог ALD Pro** -- это отдельный экземпляр LDAP-сервера, в котором содержится копия всех объектов домена в схеме данных Active Directory. Глобальный каталог обеспечивает возможность поиска объектов (пользователей и групп) из стандартных оснасток Windows, что нужно для добавления субъектов доверенного домена в списки доступа на стороне Windows.

ГК состоит из следующих компонентов:

- Экземпляр LDAP-каталога (``dirsrv@GLOBAL-CATALOG``), работающий на стандартном для глобального каталога MS AD порту `3268/TCP`.

- Модуль синхронизации (``ipa-gcsyncd``) -- служба, обеспечивающая синхронизацию объектов домена из обычного каталога в базу глобального каталога на том же контроллере домена.

- Модуль проверки целостности глобального каталога (``aldpro-gc-inspector``) -- служба для выявления конфликтов синхронизации.

Для того чтобы клиенты MS AD могли обнаружить контроллеры домена ALD Pro, выполняющие функцию глобального каталога, в домене создаются SRV-записи вида:

* _gc._tcp.fqdn_имя_домена
* _gc._tcp.Default-First-Site-Name._sites.fqdn_имя_домена
* _ldap._tcp.Default-First-Site-Name._sites.gc._msdcs.fqdn_имя_домена
* _ldap._tcp.gc._msdcs.fqdn_имя_домена

В **Global Catalog** попадают пользователи и группы только при наличии аттрибута **ipaNTSecurityIdentifier**, на основании которого генерируется аттрибут **ObjectSid** у объекта в **Global Catalog**.

Механизм поиска и добавления субъектов ALD Pro в списки ACL на стороне Windows работает следующим образом:

1. Windows-администратор при добавлении пользователя/группы в ACL с помощью стандартной оснастки выполняет поиск объектов в доверенном домене ALD Pro. Запрос направляется к глобальному каталогу на порт 3268/TCP (LDAP) с аутентификацией по Kerberos. Если Kerberos-аутентификация по какой-либо причине не сработает (например, время в доменах отличается более, чем на 5 минут), то оснастка Windows попытается выполнить NTLM-аутентификацию, поэтому пользователь увидит окно для ввода учетных данных.

2. После успешного поиска появится список объектов ALD Pro с отображением их ``uid`` (в случае пользователя) или ``cn`` (в случае группы).

3. При добавлении субъекта в список доступа, система безопасности Windows выполнит еще один запрос к контроллеру домена ALD Pro по протоколу SMB для дополнительной проверки, существует ли субъект с таким SID в домене. 

4. Для успешного выполнения указанного запроса на контроллере ALD Pro должны работать службы smbd и winbind. Обработка запроса выполняется с использованием библиотеки **ipasam** (или **aldprosam** в случае доверительных отношений между доменами ALD Pro).

5. После получения поодтверждения, что субъект с указанным SID существует в домене ALD Pro, система Windows добавит его в редактируемый список доступа.

Настройка двусторонних доверительных отношений
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Настройка и проверка перенаправления DNS ALD Pro
+++++++++++++++++++++++++++++++++++++++++++++++++++++++

Для работы доверительных отношений с компьютеров из домена ALD.company.lan должны разрешаться имена компьютеров из домена WIN.company.lan и наоборот. Если этого нет, то нужно сделать взаимное перенаправление DNS-зон.

**Настройка ALD Pro**

Добавление зоны перенаправления можно сделать из графического интерфейса **Роли и службы сайта** → **Служба разрешения имен** → **Перенаправление запросов**.

1. Имя зоны = имя домена MS AD.
2. Глобальные перенаправители = IP-адрес контроллера домена MS AD, с которым устанавливаются доверительные отношения.
3. Остальные поля и параметры оставить без изменений.

**Настройка MS AD**

Настройка контроллера домена MS AD осуществляется согласно официальным инструкциям к MS AD. (Пуск → Оснастка “DNS”):

1. Контекстное меню к “Серверы условной пересылки” → Создать сервер условной пересылки.
2. В поле “DNS-домен” ввести имя домена ALD Pro.
3. Добавить IP-адрес контроллера домена ALD Pro в блоке “IP-адреса основных серверов:”.

Установка двусторонних доверительных отношений между доменами
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Создание двусторонних доверительных отношений осуществляется на портале управления ALD Pro на вкладке **Управление доменом → Интеграция с доменом → Доверительные отношения** (см. Справочный центр на портале или Руководство пользователя).

Выполнение данных команд предоставляет УЗ Администратора доступ к атрибуту krbPrincipalKey у сервисного принципала cifs, что необходимо для успешного создания двусторонних доверительных отношений.

При создании доверительных отношений с доменом MS AD необходимо указать диапазон идентификаторов для доверенного домена MS AD.

На всех контроллерах домена ALD Pro и файловых серверах в конфигурационный файл ``samba`` необходимо добавить следующие параметры:

.. code-block:: console
   
   idmap config <netbios домена MS AD> : range = 261600000 - 261800000
   idmap config <netbios домена MS AD> : backend = sss

Диапазон идентификаторов выводится с помощью команды:

.. code-block:: console

   ipa idrange-find

Пример:

.. code-block:: console

   astr@dc01:~$ ipa idrange-find
   -------------------
   найдено 4 диапазона
   -------------------
   Имя диапазона: MSAD.DOMEN.RU_id_range
   Первый идентификатор POSIX диапазона: 618600000
   Количество идентификаторов в диапазоне: 200000
   Первый RID соответствующего диапазона RID: 0
   SID доверенного домена: S-1-5-21-3537296142-1636428635-2476405179
   Тип диапазона: Active Directory domain range
   Имя диапазона: MVPWIN16.DOMEN.RU_id_range
   Первый идентификатор POSIX диапазона: 261600000
   Количество идентификаторов в диапазоне: 200000
   Первый RID соответствующего диапазона RID: 0
   SID доверенного домена: S-1-5-21-3894048104-315847931-183599100
   Тип диапазона: Active Directory domain range

Из этого:

.. code-block:: console

   idmap config <netbios домена MS AD> : range = <Первый идентификатор POSIX диапазона> - <Первый идентификатор POSIX диапазона> + <Количество идентификаторов в диапазоне>

После указания диапазонов идентификаторов необходимо перезапустить ``samba``:

.. code-block:: console

   sudo systemctl restart smbd winbind

Необходимо обратить внимание на созданный диапазон идентификаторов, чрезвычайно важно чтобы в созданный диапазон доверенного домена входили RID пользователей этого домена. В противном случае диапазон необходимо расширить или пересоздать двусторонние доверительные отношения с параметром ``--range-size=<количество идентификаторов в диапазоне>``.

.. important::
   
   После создания двусторонних доверительных отношений через некоторое время (в зависимости от того сколько реплик MS AD) может возникнуть ошибка с добавлением объектов через групповые политики. В этом случае необходимо удалить, а затем заново создать доверительные отношения. При этом записи с диапазона идентификаторов для доверенного домена и конфигурационный файл с ``samba`` оставить как есть (не удалять).

Отключение FAST аутентификации
+++++++++++++++++++++++++++++++++++++

Для доступа к ресурсам windows с аутентификацией по kerberos (IIS, cifs, принтеры с общим доступом по smb) необходимо отключить у клиентских компьютеров FAST аутентификацию, так как windows её не поддерживает. Для этого на всех клиентах ALD Pro, где предполагается доступ, необходимо настроить глобальную политику **Групповые политики → Параметры компьютеров → Безопасность → FAST аутентификация**. Выставить параметр never.

.. important::
   
   Установка этого параметра понижает безопасность.

При первом применении может понадобиться перезагрузка сервиса sssd.

Проверка двусторонних доверительных отношений
+++++++++++++++++++++++++++++++++++++++++++++++++++

Проверить двусторонние доверительные отношения можно следующими способами:

1. авторизация на компьютере домена MS AD;

2. авторизация на компьютере домена ALD Pro;

3. создание общей папки.

**Авторизация на компьютере домена MS AD**

Необходимо авторизоваться на компьютере домена MS AD, используя учетную запись пользователя ALD Pro. Логин должен быть указан полностью, включая имя домена:

::

   <имя_пользователя ALD Pro>@<имя_домена>

В результате пользователь под учетной записью ALD Pro авторизуется на компьютере домена MS AD.

**Авторизация на компьютере домена ALD Pro**

Необходимо выбрать нужный домен MS AD и авторизоваться на компьютере домена ALD Pro, используя учетную запись пользователя MS AD. В поле **Имя пользователя** необходимо указать имя пользователя, без имени домена.

В результате пользователь под учетной записью MS AD авторизуется на компьютере домена ALD Pro.

**Создание общей папки**

1. Создание общей папки на компьютере домена MS AD.

Необходимо создать папку **C:\Common** и добавить в нее хотя бы один файл. Открыть доступ к созданной папке из контекстного меню **Sharing → Share → Network access**. Настройки оставить по умолчанию.

В окне **Common Properties\Sharing\Advanced Settings\Permissions** будет отображена информация, что по умолчанию на уровне SMB все пользователи, включая пользователей ALD Pro, имеют полные права.

Но доступ к файлам регулируется также на уровне NTFS разрешений, которые настраиваются на вкладке **Common Properties\Security**. Можно предоставить доступ к общей папке всем аутентифицированным пользователям.

В результате пользователи ALD Pro могут редактировать файлы, находящиеся в папке **Common**.

2. Создание общей папки на компьютере домена ALD Pro.

Необходимо создать новое сетевое место, которое соответствует папке **Common** в файловом менеджере. Для этого выбрать **Сеть → Создать сетевое место**. Указать **Название** и **Адрес** в формате:

::

   smb://<полное наименование контроллера домена MS AD, на котором создана папка>/<Наименование папки из MS AD>

В результате пользователи MS AD могут редактировать файлы, находящиеся в папке **Common**.

